In computing, a function is a segment of source code that performs a task. A function that calls another function is a caller or calling function. A function that is called by another function is a callee function. A call graph is a directed graph that represents calling relationships between callers and callees in a computer program. Each node in the call graph represents a function and each edge indicates a caller and a callee. For example, an edge (a,b) indicates that function a calls function b. Call graphs can be used for program analysis. For example, a call graph can be used to provide a visual that helps humans understand how a program works. Call graphs are typically used to detect errors in program execution. A forest is a directed graph comprised of a disjoint union of trees.